Problem
于神之怒加强版
Description
给下,计算的值。
Input
输入有多组数据,输入数据的第一行两个正整数,代表有组数据,的意义如上所示,下面第行到第行,每行为两个正整数,其意义如上式所示。
Output
Sample Input
1 | 1 2 |
Sample Output
1 | 20 |
HINT
标签:莫比乌斯反演
Solution
先套路转换出:
那么每次询问对于前半部分可以根号分块,随后需要计算后半部分的值,因而需要线筛预处理后半部分的值。
令,
由于和均为积性函数,因而也为积性函数。
那么就有
易知当时,均有,因此有
接下来考虑在线筛中如何处理。
首先,对于所有质数,均有。
而对于合数,假设当前筛到的数是,对于一个比它小的素数,有两种情况:
- 若,设在分解质因数中的次数为,那么相比于而言,在含的约数中的次数都增加了,否则无贡献。因此增加了,这样总共扩大了倍,故;
- 若,由积性函数可知。
这样就可以筛出的函数值,每次询问根号分块,总复杂度。
Code
1 |
|